package com.glsc.ngateway.common.api.platform.dto.other;


import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

/**
 * cpu规格导入 数据结构
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude
@SuperBuilder
public class FortressAccountImportDto {


    @Alias(value = "账号")
    @ApiModelProperty(value = "账号")
    private String account;

    @Alias(value = "姓名")
    @ApiModelProperty(value = "姓名")
    private String name;

    @Alias(value = "账号有效期(从)")
    @ApiModelProperty(value = "账号有效期(从)")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate accountValidityFrom;

    @Alias(value = "账号有效期(到)")
    @ApiModelProperty(value = "账号有效期(到)")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate accountValidityEnd;

    @Alias(value = "用户组")
    private String userGroup;

    @Alias(value = "状态")
    private String status;

    @Alias(value = "角色")
    @ApiModelProperty(value = "role")
    private String role;

    @Alias(value = "最后登录时间")
    @ApiModelProperty(value = "Last Login Time")
    private String lastLoginTime; // 注意，这里我把你的字段名改为了lastLoginTime，以更直观地表示其含义。

    @Alias(value = "工作邮箱")
    @ApiModelProperty(value = "Work Email")
    private String workEmail; // 同样地，这里我把你的字段名改为了workEmail。

    @Alias(value = "令牌号")
    @ApiModelProperty(value = "Token Number")
    private String tokenNum; // 这里我把你的字段名改为了tokenNum。

    @Alias(value = "手机号码")
    @ApiModelProperty(value = "Phone Number")
    private String phoneNumber; // 这里我把你的字段名改为了phoneNumber。

    @Alias(value = "部门")
    @ApiModelProperty(value = "Department")
    private String department; // 这里我把你的字段名改为了department。

    @Alias(value = "是否验证X.509证书")
    @ApiModelProperty(value = "Verify X.509 Certificate")
    private String verifyX509; // 这里我把你的字段名改为了verifyX509。

    @Alias(value = "岗位")
    @ApiModelProperty(value = "Position")
    private String position; // 这里我把你的字段名改为了position。

    @Alias(value = "工号")
    @ApiModelProperty(value = "Employee Number")
    private String employeeNum; // 这里我把你的字段名改为了employeeNum。
}
